perm filename TASKS[RDG,DBL]1 blob sn#640707 filedate 1982-02-02 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00006 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	Given knowledge about SCORE, figure how to use SAIL.
C00003 00003	Dialogue: EMACS from E
C00006 00004	(Non)Corresponding commands: (E to EMACS)
C00009 00005	Goal - wrt Existing KBs
C00013 00006	II. Design a new KB (and expert system) modelled after existing KB/expert system:
C00014 ENDMK
C⊗;
Given knowledge about SCORE, figure how to use SAIL.
No <ESC> on SAIL - instead minimal prefix is sufficient.
	Also different control characters -- in line editor.
Directories are [prn,prp], not <User>.

EMACS is like E
	But character oriented, not line

TEX is like SCRIBE
	But n-pass each time
	Based on macros, not...

----
Learn E on UNIX, exploiting metaphors from <SAIL>E and <SCORE>EMACS
Dialogue: EMACS from E
{Here, the analogizer, A, knows a lot of E, a bit about editors in general
(basically by "abstracting" from E), and nothing about EMACS.
Its goal is to "learn" EMACS.  This will be done piecemeal, by attempting
to map salient features of E (and hopefully, hence, of editors) onto EMACS.
The expert, U, knows ~everything about both systems.
Then we'll worry about exceptions. (ie during first stage these will be pushed
into the background.)

Eventually, perhaps, we'll infer something re: EMACS from facts about SCORE -
in particular, its relation to SAIL.}
----

U: EMACS is just like E, except EMACS is character, rather than line, oriented.

A: Oh - I know that E is a general purpose full screen editor, running on a large
time sharing system.  Is EMACS all of these as well?

U: Yes.

A: Let me ignore your comment about "character oriented" for the moment.
(Examining E's teaching aide,)
it seems the basic commands for editors include
	moving the cursor,
	finding some string, 
	substituting one string for another,
	saving and
	exiting.
Are these the same for EMACS?

U: Yes.

A: Are there others?

U: Yes - moving the "point", defining and using macros, ...

<<Insert later:
I know that E is line-buffered.  Also, by definition, every line is
a row of characters.  Should I infer that EMACS is "character buffered"?

U: Yes.

A: Buffering is done to facilitate certain operations...
... hence the various commands for moving among lines will be faster in EMACS;
whereas E's commands, which affect but one line, are more rapid.
>>>

---
Analogy: rather than "from here to end of page", really "from here to point".

(Non)Corresponding commands: (E to EMACS)
Next character, line, window, ...
	[Note EMACS NOT paged; and so no NEXT page]
Previous character, line, window, ...
	[As before, EMACS has no PREVIOUS page]
Find, Substitute, [once, every FUTURE occurance, ALL (forward and backward)]
Documentation (much easier in EMACS - in E must already know E)
Teaching mechanism - called ETEACH both times!


EMACS inserts, E overwrites (by default)
	hence EMACS more twiddleable and adaptable to individual user
	[and EMACS from place with different philosophy, at different time]
EMACS can handle MACROS much better than E
EMACS can access several files at once - E can't
E built to handle multi-page files, EMACS is not.
E has a general mechanism for moving stuff around (αA, αC) - EMACS does it
	by (i) deleting and yanking back,
	or (ii) putting it into a buffer, then depositing that buffer.
EMACS - most commands can have 2 numerical parameters, E but 1.
	Default argument is the standard case: for both, usually +1 (eg for PAGE)
		[of course αL is simply 1L, NOT +1L (as that just <CR>)]
E - no backwards search (because of pages.)
EMACS based on 2 points (cursor and point) - E just has cursor.
E saves automatically on leaving a page, EMACS never saves (of course could twiddle
	it to do so automatically.)

Given this:
Mail at SAIL based on E, on SCORE on EMACS.  How similar, and how different?

Get to internals later: EMACS written on TECO, E in crude assembly code.
Goal - wrt Existing KBs

I. Incorporate a new concept, X, into an existing KB.

This can only work for certain types of domain concepts X:
(1) There is some domain concept Y s.t.
  (i) X is like Y
  (ii) much is known about Y
(2) Little is known about X, except
(3) How X is {like	    } Y.
 	     {different from}

The process would essentially involve:
	Finding all facts, F, which deal with Y.  From each such F, create an
analogous F', which deals with X. (I.e. Y:F :: X: F'.)


Examples:
	[Dendral world]
Esters like ketones
	[Molgen world]
EnzymesX like Restriction Enzymes
Expressed Regions (in DNA) like UnExpressed Regions.
Extrons are like Spacers (between-coding-region regions).
	[Chess world]
Rooks are like Bishops.
Rook pawns are like Bishop pawn.
	[Electronics world]
PNP junctions like NPN.
	[VLSI world]
AND gates are like OR gates.
vanNeumann machines like VLSI computers.
	[Computer science]
Recursion is like Iteration.
	[Mathematics]
Partial orderings are like total orderings.
Lattices are like Strict Hierarchies.
Groups are like Fields | Rings | ...

----
From Shortliffe:
	[Medical world]
<Trophic hormones>
Pituitary gland sends TCH to thyroid gland, which responds with T4,
	back to pituitary
Given this, consider how pituitary interacts with Adrenal:
(here it uses ACTH to Adrenal, and ? back)

?H from pituitary to skin. (no feedback)

Note that ?H shares much structure with ACTH (6 of 8-10 amino acids)

---
another use of analogy
for Oncology - visits are arranged horizontally, special medications vertically.
Then consider what next treatment should be, based on this history.
It should be analogous to earlier treatments, in similar situations...

------
Programme - find a few good fields, and X/Y pairs.
Important to be able to test result -- ie a running program (using Y),
and need to use X - together with known rules of X (which can be checked).

II. Design a new KB (and expert system) modelled after existing KB/expert system:

The abstraction here is (a theory of) EMYCIN.

Meningitis : Mycin :: Urinary tract diseases : ?
Meningitis : Mycin :: ?			     : SACON